package com.yueya.common.util;

public class RandomUtil {

	/**
	 * 得到字母+数字的随机数
	 * 
	 * @param digit
	 * @return
	 */
	public static String getLetterNumber(int digit) {
		String n[] = { "a", "b", "c", "d", "e", "f", "h", "j", "k", "m", "n", "p", "r", "s", "t", "u", "v", "w", "x",
				"y", "z", "2", "3", "4", "5", "6", "7", "8", "9" };
		String str = "";
		int index = 0;
		for (int i = 0; i < digit; i++) {
			index = 1 + (int) (Math.random() * 28);

			str += n[index];

		}
		return str;
	}

	public static String getNumber(int digit) {
		String n[] = { "0", "1", "2", "3", "4", "5", "6", "7", "8", "9" };
		String str = "";
		int index = 0;
		for (int i = 0; i < digit; i++) {
			index = (int) (Math.random() * 9);
			str += n[index];
		}
		return str;
	}

	// 默认从0开始，最大为max的随机整数下标
	public static int getInt(int max) {
		return getInt(0, max);
	}

	// 生成min（含）-max（含）的随机整数
	public static int getInt(int min, int max) {
		if (min > max) {
			int t = min;
			min = max;
			max = t;
		}
		double rd = Math.random();
		return (int) Math.round(min + rd * (max - min));
	}

	/**
	 * 随机指定范围内N个不重复的数 最简单最基本的方法
	 * 
	 * @param min
	 *            指定范围最小值
	 * @param max
	 *            指定范围最大值
	 * @param n
	 *            随机数个数
	 */
	public static int[] getInt(int min, int max, int n) {
		if (n > (max - min + 1) || max < min) {
			return null;
		}
		int[] result = new int[n];
		int count = 0;
		while (count < n) {
			int num = (int) (Math.random() * (max - min)) + min;
			boolean flag = true;
			for (int j = 0; j < n; j++) {
				if (num == result[j]) {
					flag = false;
					break;
				}
			}
			if (flag) {
				result[count] = num;
				count++;
			}
		}
		return result;
	}

	// 生成随机布尔值
	public static boolean getBoolean() {
		return Math.random() < 0.5;
	}

	// 随机返回输入的参数
	public static String get(String... args) {
		int i = getInt(args.length - 1);
		return args[i];
	}
	
	
	public static void main(String args[]) {
		int[] randomIndex = getInt(0,100,10);
		for(int i = 0;i<randomIndex.length;i++) {
			//System.out.println(randomIndex[i]);
		}
		
		System.out.println(getInt(0,100));
		
	}
}
